/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.railway.reports;

import com.railway.reports.utils.QueryBuilder;
import com.railway.utils.CustomScrollBarUI;
import com.railway.utils.RestServer;
import java.text.SimpleDateFormat;
import java.util.List;
import javax.swing.DefaultComboBoxModel;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

/**
 *
 * @author Kenny
 */
public class MemberCustomizer extends javax.swing.JPanel {

    private DefaultComboBoxModel dcbmState, dcbmCity;
    private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    private boolean range = false;
    private boolean valueBalance = false;
    private boolean place = false;
    private int initialHave = 0;
    private QueryBuilder qb;

    /**
     * Creates new form TicketCustomizer
     */
    public MemberCustomizer() {
        initComponents();
        populateState();
        populateCity();
        jbgValue.add(jrbValueMore);
        jbgValue.add(jrbValueEquals);
        jbgValue.add(jrbValueLess);
        
    }

    private void populateState() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                dcbmState = new DefaultComboBoxModel();
                dcbmCity = new DefaultComboBoxModel();
                String result = RestServer.httpGet("member/state", "");
                try {
                    JSONObject json = new JSONObject(result);
                    boolean error = json.optBoolean("error");
                    if (!error) {
                        int statuscode = json.getInt("status");
                        if (statuscode == 200) {
                            JSONArray jsonArr = json.getJSONArray("content");
                            for (int i = 0; i < jsonArr.length(); i++) {
                                dcbmState.addElement(jsonArr.getJSONObject(i).getString("state"));
                            }
                            jcbxState.setModel(dcbmState);
                        }
                    }
                } catch (JSONException ex) {
                    System.out.println(ex);
                }
            }
        }).start();
    }
    
    private void populateCity() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                dcbmState = new DefaultComboBoxModel();
                dcbmCity = new DefaultComboBoxModel();
                String result = RestServer.httpGet("member/city", "");
                try {
                    JSONObject json = new JSONObject(result);
                    boolean error = json.optBoolean("error");
                    if (!error) {
                        int statuscode = json.getInt("status");
                        if (statuscode == 200) {
                            JSONArray jsonArr = json.getJSONArray("content");
                            for (int i = 0; i < jsonArr.length(); i++) {
                                dcbmCity.addElement(jsonArr.getJSONObject(i).getString("city"));
                            }
                            jcbxCity.setModel(dcbmCity);
                        }
                    }
                } catch (JSONException ex) {
                    System.out.println(ex);
                }
            }
        }).start();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jbgDateRange = new javax.swing.ButtonGroup();
        jbgLocation = new javax.swing.ButtonGroup();
        jbgValue = new javax.swing.ButtonGroup();
        jlblTicketCustomizer = new javax.swing.JLabel();
        jsprCustomizer = new javax.swing.JSeparator();
        jycYear = new com.toedter.calendar.JYearChooser();
        jdcFrom = new com.toedter.calendar.JDateChooser();
        jlblAnd = new javax.swing.JLabel();
        jdcTo = new com.toedter.calendar.JDateChooser();
        jrbRangeYear = new javax.swing.JRadioButton();
        jrbRangeMonth = new javax.swing.JRadioButton();
        jrbRangeBetween = new javax.swing.JRadioButton();
        jspiMonth = new javax.swing.JSpinner();
        jcbRangeOfDate = new javax.swing.JCheckBox();
        jcbMemberLocation = new javax.swing.JCheckBox();
        jrbState = new javax.swing.JRadioButton();
        jrbCity = new javax.swing.JRadioButton();
        jcbxState = new javax.swing.JComboBox();
        jcbxCity = new javax.swing.JComboBox();
        jcbValue = new javax.swing.JCheckBox();
        jrbValueMore = new javax.swing.JRadioButton();
        jrbValueEquals = new javax.swing.JRadioButton();
        jrbValueLess = new javax.swing.JRadioButton();
        jspiValueMore = new javax.swing.JSpinner();
        jspiValueEquals = new javax.swing.JSpinner();
        jspiValueLess = new javax.swing.JSpinner();

        setBackground(new java.awt.Color(255, 255, 255));
        setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(220, 220, 220), 2));
        setPreferredSize(new java.awt.Dimension(210, 340));
        setLayout(null);

        jlblTicketCustomizer.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jlblTicketCustomizer.setText("CRITERIA CUSTOMIZER");
        add(jlblTicketCustomizer);
        jlblTicketCustomizer.setBounds(10, 5, 200, 20);
        add(jsprCustomizer);
        jsprCustomizer.setBounds(5, 25, 200, 5);

        jycYear.setEnabled(false);
        add(jycYear);
        jycYear.setBounds(100, 50, 100, 20);

        jdcFrom.setEnabled(false);
        jdcFrom.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        add(jdcFrom);
        jdcFrom.setBounds(100, 90, 100, 20);

        jlblAnd.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jlblAnd.setText("and");
        jlblAnd.setEnabled(false);
        add(jlblAnd);
        jlblAnd.setBounds(40, 110, 60, 20);

        jdcTo.setEnabled(false);
        jdcTo.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        add(jdcTo);
        jdcTo.setBounds(100, 110, 100, 20);

        jrbRangeYear.setBackground(new java.awt.Color(255, 255, 255));
        jbgDateRange.add(jrbRangeYear);
        jrbRangeYear.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jrbRangeYear.setSelected(true);
        jrbRangeYear.setText("Year");
        jrbRangeYear.setActionCommand("year");
        jrbRangeYear.setEnabled(false);
        jrbRangeYear.setFocusPainted(false);
        jrbRangeYear.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbRangeYearActionPerformed(evt);
            }
        });
        add(jrbRangeYear);
        jrbRangeYear.setBounds(20, 50, 80, 20);

        jrbRangeMonth.setBackground(new java.awt.Color(255, 255, 255));
        jbgDateRange.add(jrbRangeMonth);
        jrbRangeMonth.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jrbRangeMonth.setText("Month");
        jrbRangeMonth.setActionCommand("month");
        jrbRangeMonth.setEnabled(false);
        jrbRangeMonth.setFocusPainted(false);
        jrbRangeMonth.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbRangeMonthActionPerformed(evt);
            }
        });
        add(jrbRangeMonth);
        jrbRangeMonth.setBounds(20, 70, 80, 20);

        jrbRangeBetween.setBackground(new java.awt.Color(255, 255, 255));
        jbgDateRange.add(jrbRangeBetween);
        jrbRangeBetween.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jrbRangeBetween.setText("Between");
        jrbRangeBetween.setActionCommand("between");
        jrbRangeBetween.setEnabled(false);
        jrbRangeBetween.setFocusPainted(false);
        jrbRangeBetween.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbRangeBetweenActionPerformed(evt);
            }
        });
        add(jrbRangeBetween);
        jrbRangeBetween.setBounds(20, 90, 80, 20);

        jspiMonth.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jspiMonth.setModel(new javax.swing.SpinnerNumberModel(1, 1, 12, 1));
        jspiMonth.setEnabled(false);
        add(jspiMonth);
        jspiMonth.setBounds(100, 70, 100, 20);

        jcbRangeOfDate.setBackground(new java.awt.Color(255, 255, 255));
        jcbRangeOfDate.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jcbRangeOfDate.setText("Date of Register");
        jcbRangeOfDate.setActionCommand("datePurchased");
        jcbRangeOfDate.setFocusPainted(false);
        jcbRangeOfDate.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jcbRangeOfDateActionPerformed(evt);
            }
        });
        add(jcbRangeOfDate);
        jcbRangeOfDate.setBounds(10, 30, 190, 20);

        jcbMemberLocation.setBackground(new java.awt.Color(255, 255, 255));
        jcbMemberLocation.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jcbMemberLocation.setText("Member's Location");
        jcbMemberLocation.setFocusPainted(false);
        jcbMemberLocation.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jcbMemberLocationActionPerformed(evt);
            }
        });
        add(jcbMemberLocation);
        jcbMemberLocation.setBounds(10, 230, 190, 20);

        jrbState.setBackground(new java.awt.Color(255, 255, 255));
        jbgLocation.add(jrbState);
        jrbState.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jrbState.setSelected(true);
        jrbState.setText("State");
        jrbState.setActionCommand("ori");
        jrbState.setEnabled(false);
        jrbState.setFocusPainted(false);
        jrbState.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbStateActionPerformed(evt);
            }
        });
        add(jrbState);
        jrbState.setBounds(20, 250, 90, 20);

        jrbCity.setBackground(new java.awt.Color(255, 255, 255));
        jbgLocation.add(jrbCity);
        jrbCity.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jrbCity.setText("City");
        jrbCity.setActionCommand("des");
        jrbCity.setEnabled(false);
        jrbCity.setFocusPainted(false);
        jrbCity.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbCityActionPerformed(evt);
            }
        });
        add(jrbCity);
        jrbCity.setBounds(20, 290, 90, 20);

        jcbxState.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jcbxState.setEnabled(false);
        add(jcbxState);
        jcbxState.setBounds(40, 270, 160, 20);

        jcbxCity.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jcbxCity.setEnabled(false);
        add(jcbxCity);
        jcbxCity.setBounds(40, 310, 160, 20);

        jcbValue.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jcbValue.setText("Balance");
        jcbValue.setOpaque(false);
        jcbValue.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jcbValueActionPerformed(evt);
            }
        });
        add(jcbValue);
        jcbValue.setBounds(10, 140, 160, 20);

        jrbValueMore.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jrbValueMore.setSelected(true);
        jrbValueMore.setText("More than");
        jrbValueMore.setActionCommand("m");
        jrbValueMore.setEnabled(false);
        jrbValueMore.setOpaque(false);
        jrbValueMore.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbValueMoreActionPerformed(evt);
            }
        });
        add(jrbValueMore);
        jrbValueMore.setBounds(20, 160, 90, 20);

        jrbValueEquals.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jrbValueEquals.setText("Equals to");
        jrbValueEquals.setActionCommand("e");
        jrbValueEquals.setEnabled(false);
        jrbValueEquals.setOpaque(false);
        jrbValueEquals.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbValueEqualsActionPerformed(evt);
            }
        });
        add(jrbValueEquals);
        jrbValueEquals.setBounds(20, 180, 90, 20);

        jrbValueLess.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jrbValueLess.setText("Less than");
        jrbValueLess.setActionCommand("l");
        jrbValueLess.setEnabled(false);
        jrbValueLess.setOpaque(false);
        jrbValueLess.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrbValueLessActionPerformed(evt);
            }
        });
        add(jrbValueLess);
        jrbValueLess.setBounds(20, 200, 90, 20);

        jspiValueMore.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jspiValueMore.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(0), Integer.valueOf(0), null, Integer.valueOf(1)));
        jspiValueMore.setEnabled(false);
        add(jspiValueMore);
        jspiValueMore.setBounds(110, 160, 60, 20);

        jspiValueEquals.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jspiValueEquals.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(0), Integer.valueOf(0), null, Integer.valueOf(1)));
        jspiValueEquals.setEnabled(false);
        add(jspiValueEquals);
        jspiValueEquals.setBounds(110, 180, 60, 22);

        jspiValueLess.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jspiValueLess.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(0), Integer.valueOf(0), null, Integer.valueOf(1)));
        jspiValueLess.setEnabled(false);
        add(jspiValueLess);
        jspiValueLess.setBounds(110, 200, 60, 22);
    }// </editor-fold>//GEN-END:initComponents

    private void jrbRangeYearActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbRangeYearActionPerformed
        jycYear.setEnabled(true);
        jspiMonth.setEnabled(false);
        jdcFrom.setEnabled(false);
        jdcTo.setEnabled(false);
    }//GEN-LAST:event_jrbRangeYearActionPerformed

    private void jrbRangeMonthActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbRangeMonthActionPerformed
        jycYear.setEnabled(false);
        jspiMonth.setEnabled(true);
        jdcFrom.setEnabled(false);
        jdcTo.setEnabled(false);
    }//GEN-LAST:event_jrbRangeMonthActionPerformed

    private void jrbRangeBetweenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbRangeBetweenActionPerformed
        jycYear.setEnabled(false);
        jspiMonth.setEnabled(false);
        jdcFrom.setEnabled(true);
        jdcTo.setEnabled(true);
    }//GEN-LAST:event_jrbRangeBetweenActionPerformed

    private void jcbRangeOfDateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jcbRangeOfDateActionPerformed
        initialHave = 0;
        if (jcbRangeOfDate.isSelected()) {
            range = true;
            jrbRangeYear.setEnabled(true);
            jrbRangeMonth.setEnabled(true);
            jrbRangeBetween.setEnabled(true);
            jlblAnd.setEnabled(true);
            jycYear.setEnabled(true);
        } else {
            range = false;
            jrbRangeYear.setEnabled(false);
            jrbRangeMonth.setEnabled(false);
            jrbRangeBetween.setEnabled(false);
            jlblAnd.setEnabled(false);
            jycYear.setEnabled(false);
            jspiMonth.setEnabled(false);
            jdcFrom.setEnabled(false);
            jdcTo.setEnabled(false);
        }
    }//GEN-LAST:event_jcbRangeOfDateActionPerformed

    private void jcbMemberLocationActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jcbMemberLocationActionPerformed
        initialHave = 0;
        if (jcbMemberLocation.isSelected()) {
            place = true;
            jrbState.setEnabled(true);
            jrbCity.setEnabled(true);
            jcbxState.setEnabled(true);
        } else {
            place = false;
            jrbState.setEnabled(false);
            jrbCity.setEnabled(false);
            jcbxState.setEnabled(false);
            jcbxCity.setEnabled(false);
        }
    }//GEN-LAST:event_jcbMemberLocationActionPerformed

    private void jrbStateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbStateActionPerformed
        jcbxState.setEnabled(true);
        jcbxCity.setEnabled(false);
    }//GEN-LAST:event_jrbStateActionPerformed

    private void jrbCityActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbCityActionPerformed
        jcbxState.setEnabled(false);
        jcbxCity.setEnabled(true);
    }//GEN-LAST:event_jrbCityActionPerformed

    private void jcbValueActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jcbValueActionPerformed
        if (jcbValue.isSelected()) {
            valueBalance = true;
            jrbValueMore.setEnabled(true);
            jspiValueMore.setEnabled(true);
            jrbValueEquals.setEnabled(true);
            jrbValueLess.setEnabled(true);
        } else {
            valueBalance = false;
            jrbValueMore.setEnabled(false);
            jspiValueMore.setEnabled(false);
            jrbValueEquals.setEnabled(false);
            jspiValueEquals.setEnabled(false);
            jrbValueLess.setEnabled(false);
            jspiValueLess.setEnabled(false);
        }
    }//GEN-LAST:event_jcbValueActionPerformed

    private void jrbValueMoreActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbValueMoreActionPerformed
        jspiValueMore.setEnabled(true);
        jspiValueEquals.setEnabled(false);
        jspiValueLess.setEnabled(false);
    }//GEN-LAST:event_jrbValueMoreActionPerformed

    private void jrbValueEqualsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbValueEqualsActionPerformed
        jspiValueMore.setEnabled(false);
        jspiValueEquals.setEnabled(true);
        jspiValueLess.setEnabled(false);
    }//GEN-LAST:event_jrbValueEqualsActionPerformed

    private void jrbValueLessActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrbValueLessActionPerformed
        jspiValueMore.setEnabled(false);
        jspiValueEquals.setEnabled(false);
        jspiValueLess.setEnabled(true);
    }//GEN-LAST:event_jrbValueLessActionPerformed

    private void rangeHaving() {
        String selectedRange = jbgDateRange.getSelection().getActionCommand();
        switch (selectedRange) {
            case "year":
                qb.having("YEAR(registerDate)", "" + jycYear.getValue());
                break;
            case "month":
                qb.having("MONTH(registerDate)", "" + jspiMonth.getValue());
                break;
            case "between":
                qb.havingBetween("registerDate", format.format(jdcFrom.getDate()), format.format(jdcTo.getDate()));
                break;
        }
    }

    private void rangeAnd() {
        String selectedRange = jbgDateRange.getSelection().getActionCommand();
        switch (selectedRange) {
            case "year":
                qb.and("YEAR(registerDate)", "" + jycYear.getValue());
                break;
            case "month":
                qb.and("MONTH(registerDate)", "" + jspiMonth.getValue());
                break;
            case "between":
                qb.andBetween("registerDate", format.format(jdcFrom.getDate()), format.format(jdcTo.getDate()));
                break;
        }
    }
    
       private void valueHaving() {
        String operator = jbgValue.getSelection().getActionCommand();
        switch (operator) {
            case "m":
                qb.having("balance", (int) jspiValueMore.getValue(), QueryBuilder.MORE_THAN);
                break;
            case "e":
                qb.having("balance", (int) jspiValueEquals.getValue());
                break;
            case "l":
                qb.having("balance", (int) jspiValueLess.getValue(), QueryBuilder.LESS_THAN);
                break;
        }
    }

    private void valueAnd() {
        String operator = jbgValue.getSelection().getActionCommand();
        switch (operator) {
            case "m":
                qb.and("balance", (int) jspiValueMore.getValue(), QueryBuilder.MORE_THAN);
                break;
            case "e":
                qb.and("balance", (int) jspiValueEquals.getValue());
                break;
            case "l":
                qb.and("balance", (int) jspiValueLess.getValue(), QueryBuilder.LESS_THAN);
                break;
        }
    }


    private void locationHaving() {
        String selectedloc = jbgLocation.getSelection().getActionCommand();
        switch (selectedloc) {
            case "ori":
                qb.having("state", jcbxState.getSelectedItem().toString());
                break;
            case "des":
                qb.having("city", jcbxCity.getSelectedItem().toString());
                break;
        }
    }

    private void locationAnd() {
        String selectedloc = jbgLocation.getSelection().getActionCommand();
        System.out.println(selectedloc);
        switch (selectedloc) {
            case "ori":
                qb.and("state", jcbxState.getSelectedItem().toString());
                break;
            case "des":
                qb.and("city", jcbxCity.getSelectedItem().toString());
                break;
        }
    }

    public String buildQuery() {
        qb = new QueryBuilder();
        qb.select("m.firstname", "m.icNo", "m.address", "m.city", "m.state", "m.contactNo", "m.balance", "u.registerDate").from("member m, users u")
                .where("u.uid", "m.uid", false);
        if (range) {
            System.out.println(initialHave);
            if (initialHave != 2 && initialHave != 3) {
                initialHave = 1;
                rangeHaving();
            } else {
                rangeAnd();
            }
        }
        
        if (valueBalance) {
                if (initialHave != 1 && initialHave != 3) {
                    initialHave = 2;
                    valueAnd();
                } else {
                    if (initialHave == 1) {
                        valueAnd();
                    } else {
                        valueAnd();
                    }
                }
            }
        if (place) {
            System.out.println(initialHave);
            if (initialHave != 1 && initialHave != 2) {
                initialHave = 3;
                locationHaving();
            } else {
                locationAnd();
            }
        }
        System.out.println(qb.build());
        return qb.build();
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.ButtonGroup jbgDateRange;
    private javax.swing.ButtonGroup jbgLocation;
    private javax.swing.ButtonGroup jbgValue;
    private javax.swing.JCheckBox jcbMemberLocation;
    private javax.swing.JCheckBox jcbRangeOfDate;
    private javax.swing.JCheckBox jcbValue;
    private javax.swing.JComboBox jcbxCity;
    private javax.swing.JComboBox jcbxState;
    private com.toedter.calendar.JDateChooser jdcFrom;
    private com.toedter.calendar.JDateChooser jdcTo;
    private javax.swing.JLabel jlblAnd;
    private javax.swing.JLabel jlblTicketCustomizer;
    private javax.swing.JRadioButton jrbCity;
    private javax.swing.JRadioButton jrbRangeBetween;
    private javax.swing.JRadioButton jrbRangeMonth;
    private javax.swing.JRadioButton jrbRangeYear;
    private javax.swing.JRadioButton jrbState;
    private javax.swing.JRadioButton jrbValueEquals;
    private javax.swing.JRadioButton jrbValueLess;
    private javax.swing.JRadioButton jrbValueMore;
    private javax.swing.JSpinner jspiMonth;
    private javax.swing.JSpinner jspiValueEquals;
    private javax.swing.JSpinner jspiValueLess;
    private javax.swing.JSpinner jspiValueMore;
    private javax.swing.JSeparator jsprCustomizer;
    private com.toedter.calendar.JYearChooser jycYear;
    // End of variables declaration//GEN-END:variables
}
